Il linguaggio "E"
di Stefano Aquino
Prendiamo la semplicità del Basic, la potenza del C, la capacità di controllo garantita dall'Assembler, mettiamo tutto insieme e, grazie allo sforzo di un (folle!) olandese, otteniamo la magia delle magie: il linguaggio E!
La prima cosa che vi consigliamo di fare per seguire senza problemi quello che tenteremo di esporre periodicamente in queste pagine, è reperire il pacchetto di installazione, problema facilmente risolvibile visto che parliamo di un prodotto rilasciato in PD.
Ricordiamo che, attualmente, è possibile trovare almeno due versioni del prodotto stesso: una più vecchia, di libera distribuzione e perfettamente funzionante, che contiene solo gli "include" utili per sfruttare i KickStart fino alla versione 2.04; una più recente, che è, però, shareware, con gli "include" per utilizzare anche il Sistema Operativo 3.0 e che mette a disposizione un compilatore "ridotto", nel senso di limitato a generare eseguibili di 12 Kb al massimo. Per ottenere il compilatore completamente funzionante è necessario versare all'autore una somma pari a 40 dollari (o 63.000 lire come è specificato nei Docs acclusi) il quale provvederà celermente a recapitarci il compilatore "integro", via posta o via E-Mail (con la quale si risparmiano 5 dollari).
Installazione
L'installazione del pacchetto è piuttosto semplice: basta decomprimere l'archivio e digitare le seguenti linee, o meglio inserirle nella "User-Startup":
Assign EMODULES: MyEDirectory:Modules
Path MyEDirectory:Bin add
dove, evidentemente, "MyEDirectory" è la directory nella quale si è appena decompresso l'archivio.
Dopo questa breve introduzione, è il momento di snocciolare i punti di forza e le caratteristiche di questo linguaggio, caratteristiche che, a nostro modo di vedere, possono essere ampiamente apprezzate da un utente che voglia uno strumento flessibile per scrivere con facilità piccoli programmi di utilità personale, senza perdere tempo a produrre decine di righe per aprire una finestra o, magari peggio, per usare un gadget. Evidentemente, ciò non toglie che sia, comunque, possibile impostare progetti di più ampio respiro, visto che il compilatore non si stanca certo di elaborare programmi più corposi!
Caratteristiche
Il linguaggio che stiamo analizzando è un linguaggio ad alto livello, fortemente influenzato dalla sintassi e dalla impostazione del C, a cui faremo costantemente riferimento: in tal modo chi già conosce questa pietra miliare dell'informatica potrà fare degli utili confronti, e chi, invece, ne è digiuno, potrà un giorno passare al C stesso senza eccessivi problemi.
Il linguaggio E non è orientato ad applicazioni specifiche, per cui non troveremo librerie specificatamente scritte per il calcolo matriciale, ad esempio, ma mette a disposizione dell'utente una gamma di funzioni che possono semplificare molto la programmazione di applicazioni di sistema.
Il compilatore è, in effetti, un compilatore assemblatore linker che non si preoccupa, quindi, di trovare istruzioni Assembler selvaggiamente mischiate con le istruzioni specifiche del linguaggio... sì, avete capito bene: un'altra grande implementazione dell'E è la possibilità di inserire parti in Assembler (e, quindi, di accedere con semplicità a variabili e quant'altro usato nel programma) senza scomodarsi in dichiarazioni stile C del tipo:
#asm
...
istruzioni in Asm
...
#endasm
Inoltre i tipici "include" del C sono stati sostituiti da "moduli", ovvero "include precompilati" che permettono un forte incremento di velocità in fase di preparazione dell'eseguibile.
Interessante è notare che il codice di startup, automaticamente incluso in fase di linking, ci permette di accedere alle librerie DOS, EXEC, GRAPHICS, INTUITION senza doverle aprire in precedenza e ci consente di usare funzioni uniche dell'E (come OpenW o Gadget) che sveltiscono il lavoro di scrittura del programma.
In ultimo, non possiamo non mettere in evidenza numerose e comodissime chicche sottratte dal LISP o dall'ADA, come l'exception handling o la possibilità di usare tipi particolari, come le liste.
Questa e' solo una parte dell'articolo pubblicato su Enigma Amiga Run di Ottobre numero 68. E' possibile ricevere l'arretrato chiamando il numero (02)38.01.00.30 tutti i giorni dalle ore 10.00 alle 12.30